<?php

if (!defined('BASEPATH'))
    exit('No direct script access allowed');

/**
 * Bee Library
 * รวมการทำงานขั้นพื้นฐานแบบต่างๆ
 * @package MainLibrary
 * @subpackage Bee
 * @category main
 * @author BeYourCyber
 * @version 1.0
 */
class Bee {

    /**
     * เข้ารหัสแบบง่าย (ถอดได้)
     * เข้ารหัสตัวหนังสือแบบสุ่ม ผสมเลข id โดยจะสร้างตัวหนังสือและตัวเลขแบบสุ่มมาครอบด้านหน้าและหลัง
     * @author BeYourCyber
     * @version 1.0
     * @param int|string ค่าที่ต้องการเข้ารหัส
     * @return string หลังจากที่เข้ารหัสไปแล้ว
     */
    function simpleEncrypt($data) {
        $CI = & get_instance();
        $CI->load->library('Bee');
        $startlength = 5; //please change in simpleEncrypt too
        $endlength = 7; //please change in simpleEncrypt too
        //gen fake code
        $fake1 = $CI->bee->passwdgen($startlength);
        $fake2 = $CI->bee->passwdgen($endlength);
        return $fake1 . $data . $fake2;
    }

    /**
     * ถอดรหัสรหัสแบบง่าย (ใช้คู่กับ simpleEncrypt)
     * เข้ารหัสตัวหนังสือแบบสุ่ม ผสมเลข id โดยจะสร้างตัวหนังสือและตัวเลขแบบสุ่มมาครอบด้านหน้าและหลัง
     * @author BeYourCyber
     * @version 1.0
     * @param int|string ค่าที่ต้องการถอดรหัส
     * @return string หลังจากที่ถอดรหัสแล้ว
     * @link Bee::simpleEncrypt()
     */
    function simpleDecrypt($data) {
        $startlength = 5; //please change in simpleEncrypt too
        $endlength = 7; //please change in simpleEncrypt too
        $data = substr($data, $startlength);
        $endlength = $endlength * (-1);
        $tmp = substr($data, $endlength);
        $data = str_replace($tmp, '', $data);
        return $data;
    }

    /**
     * ตรวจสอบเบอร์โทรศัพท์มือถือ
     * ตรวจสอบเบอร์โทรศัพท์มือถือ ว่าเป็น 0811122222
     * <code>
     * $this->bee->Check_mobilePhone('0855555555');
     * </code>
     * @author BeYourCyber
     * @version 1.0
     * @param string ตัวหนังสือที่ต้องการตรวจสอบ
     * @return boolean True ถ้าเบอร์ถูกต้อง
     */
    function Check_mobilePhone($phonenum) {
        return preg_match('/^08[0-9]{8}+$/', $phonenum);
    }

    /**
     * แปลงวันที่เป็น MySQL format
     * แปลงจาก วัน/เดือน/ปี เป็น ปี/เดือน/วัน
     * @author BeYourCyber
     * @version 1.0
     * @param string วัน/เดือน/ปี ตัวอย่าง 30/12/2012
     * @return string ปี/เดือน/วัน ตัวอย่าง 2012/12/30
     */
    function datetodatabase($datedb) {
        $t = explode("/", $datedb);
        $tmp = $t[2] . "/" . $t[1] . "/" . $t[0];
        return $tmp;
    }

    /**
     * ตรวจสอบ URL
     * ตรวจสอบว่าเป็นไปตามรูปแบบของ URL หรือเปล่า คือ http://example
     * @author BeYourCyber
     * @version 1.0
     * @param string URL ที่ถูกต้อง ตัวอย่าง http://www.google.com/
     * @return boolean True ถ้าURLถูกต้อง
     */
    function Check_urlformat($urlvar) {
        return preg_match('/^(http|https)\:\/\/(([\d]{1,3}\.[\d]{1,3}\.[\d]{1,3}\.[\d]{1,3})|([\w\-]+\.)+(((af|ax|al|dz|as|ad|ao|ai|aq|ag|am|aw|au|at|az|bs|bh|bd|bb|by|be|bz|bj|bm|bt|bo|ba|bw|bv|br|io|bn|bg|bf|kh|cm|ca|cv|ky|cf|td|cl|cn|cx|cc|km|cg|cd|ck|cr|ci|hr|cu|cy|cz|dk|dj|dm|do|ec|eg|sv|gq|er|ee|et|fk|fo|fj|fi|fr|gf|pf|tf|ga|gm|ge|de|gh|gi|gr|gl|gd|gp|gu|gt| gg|gn|gw|gy|ht|hm|va|hn|hk|hu|is|id|ir|iq|ie|im|il|it|jm|jp|je|jo|kz|ke|ki|kp|kr|kw|kg|la|lv|lb|ls|lr|ly|li|lt|lu|mo|mk|mg|mw|my|mv|ml|mt|mh|mq|mr|yt|mx|fm|md|mc|mn|ms|ma|mz|mm|nr|np|nl|an|nc|nz|ni|ng|nu|nf|mp|no|om|pk|pw|ps|pa|pg|py|pe|ph|pn|pl|pt|qa|re|ro|ru|rw|sh|kn|lc|pm|vc|ws|sm|st|sa|sn|cs|sc|sl|sg|sk|si|sb|so|za|gs|es|lk|sd|sr|sj|sz|se|ch|sy|tw|tj|tz|th|tl|tg|tk|to|tt|tn|tr|tm|tc|tv|ug|ua|gb|us|um|uy|uz|vu|ve|vn|vg|vi|wf|eh|ye|zm|zw|uk|com|edu|gov|int|mil|net|org|biz|info|name|pro|aero|coop|museum|arpa|co|in|ne|bi|na|pr|ae|mu|ar))))(:[\d]{1,4})?($|(\/([a-zA-Z0-9\.\?=\#%&\+-])*)*|\/)$/', $urlvar);
    }

    /**
     * ตรวจสอบ วันที่
     * ตรวจสอบว่าเป็นไปตามรูปแบบ วัน/เดือน/ปี ตัวอย่าง 29/02/2000 | 30/04/2003 | 01/01/2003
     * @author BeYourCyber
     * @version 1.0
     * @param string วัน/เดือน/ปี
     * @return boolean True ถ้ารูปแบบถูกต้อง
     */
    function Check_dateInput($datevar) {
        //return preg_match('/^(((0[1-9]|[12]\d|3[01])\/(0[13578]|1[02])\/((1[6-9]|[2-9]\d)\d{2}))|((0[1-9]|[12]\d|30)\/(0[13456789]|1[012])\/((1[6-9]|[2-9]\d)\d{2}))|((0[1-9]|1\d|2[0-8])\/02\/((1[6-9]|[2-9]\d)\d{2}))|(29\/02\/((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))))$/',$datevar);
        return TRUE;
    }

    /**
     * สลับ Array Value กับ Array Key
     * สลับ value ไปใส่ key และ key ไปใส่ value
     * @author BeYourCyber
     * @version 1.0
     * @param array
     * @return array
     */
    function SwapArray($Array) {
        $Values = array();
        while (list($Key, $Val) = each($Array))
            $Values[$Val] = $Key;
        return $Values;
    }

    /**
     * ตรวจสอบภาษาไทย
     * กำหนดให้มีเฉพาะตัวอักษรภาษาไทยเท่านั้น มีตัวเลขที่เป็นภาษาไทยได้ แต่ห้ามมีตัวอักษรภาษาอังกฤษ
     * @author BeYourCyber
     * @version 1.0
     * @param string เป็นภาษาไทยเท่านั้น
     * @return boolean True ถ้าไม่มีภาษาอังกฤษ
     */
    function Check_thaistring($stringvar) {
        return preg_match('/^[ก-๙]+[[:space:]]{0,1}[ก-๙]+$/', $stringvar);
    }

    /**
     * ตรวจสอบบัตรประชาชน
     * ตรวจสอบหมายเลขบัตรประชาชนว่ารุปแบบถูกต้อง
     * @author BeYourCyberห
     * @version 1.0
     * @param int เลขบัตรประชาชน
     * @return boolean True ถ้ารุปแบบถูกต้อง
     */
    function Check_personalid($id) {
        if (strlen_utf8($idcode) != 13) {
            return FALSE;
        } else {
            for ($i = 0, $sum = 0; $i < 12; $i++)
                $sum += (int) ($idcode{$i}) * (13 - $i);
            if ((11 - ($sum % 11)) % 10 == (int) ($idcode{12})) {
                return TRUE;
            } else {
                return FALSE;
            }
        }
    }

    /**
     * แปลงวันที่เป็น human format
     * แปลงจาก ปี-เดือน-วัน เป็น วัน/เดือน/ปี
     * @author BeYourCyber
     * @version 1.0
     * @param string ปี-เดือน-วัน ตัวอย่าง 2012-12-30
     * @return string วัน/เดือน/ปี เช่น 03/05/2551
     */
    function ToThaiTime($datetypeonly) {
        $temp = explode("-", $datetypeonly);
        $year = $temp[0] + 543;
        return $temp[2] . "/" . $temp[1] . "/" . $year;
    }

    /**
     * สร้างรหัสผ่าน
     * สร้างรหัสผ่านแบบสุ่ม โดย $len
     * @author BeYourCyber
     * @version 1.0
     * @param int คือจำนวนของรหัสผ่านที่ต้องการให้แสดง
     * @return string รหัสผ่านตามความยาวของ $len
     */
    function passwdgen($len) {
        $password = "";
        $code = "abcdefghkmnpqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ123456789";
        srand((double) microtime() * 1000000);
        for ($i = 0; $i < $len; $i++) {
            $password .= $code[rand() % strlen($code)];
        }
        return $password;
    }

    /**
     * สร้าง array จังหวัด
     * สร้าง array เก็บค่าจังหวัด
     * @author BeYourCyber
     * @version 1.0
     * @param int เลือกว่าเป็นจังหวัดใด(id)
     * @return string|array ถ้าไม่เลือกจังหวัด จะได้ array ถ้าเลือกจังหวัดจะได้ string ชื่อจังหวัด
     */
    function Set_state($select) {
        $c[1] = 'กระบี่';
        $c[2] = 'กรุงเทพมหานคร';
        $c[3] = 'กาญจนบุรี';
        $c[4] = 'กาฬสินธุ์';
        $c[5] = 'กำแพงเพชร';
        $c[6] = 'ขอนแก่น';
        $c[7] = 'จันทบุรี';
        $c[8] = 'ฉะเชิงเทรา';
        $c[9] = 'ชลบุรี';
        $c[10] = 'ชัยนาท';
        $c[11] = 'ชัยภูมิ';
        $c[12] = 'ชุมพร';
        $c[13] = 'เชียงราย';
        $c[14] = 'เชียงใหม่';
        $c[15] = 'ตรัง';
        $c[16] = 'ตราด';
        $c[17] = 'ตาก';
        $c[18] = 'นครนายก';
        $c[19] = 'นครปฐม';
        $c[20] = 'นครพนม';
        $c[21] = 'นครราชสีมา';
        $c[22] = 'นครศรีธรรมราช';
        $c[23] = 'นครสวรรค์';
        $c[24] = 'นนทบุรี';
        $c[25] = 'นราธิวาส';
        $c[26] = 'น่าน';
        $c[27] = 'บุรีรัมย์';
        $c[28] = 'ปทุมธานี';
        $c[29] = 'ประจวบคีรีขันธ์';
        $c[30] = 'ปราจีนบุรี';
        $c[31] = 'ปัตตานี';
        $c[32] = 'พระนครศรีอยุธยา';
        $c[33] = 'พะเยา';
        $c[34] = 'พังงา';
        $c[35] = 'พัทลุง';
        $c[36] = 'พิจิตร';
        $c[37] = 'พิษณุโลก';
        $c[38] = 'เพชรบุรี';
        $c[39] = ' เพชรบูรณ์';
        $c[40] = 'แพร่';
        $c[41] = 'ภูเก็ต';
        $c[42] = 'มหาสารคาม';
        $c[43] = 'มุกดาหาร';
        $c[44] = 'แม่ฮ่องสอน';
        $c[45] = 'ยโสธร';
        $c[46] = 'ยะลา';
        $c[47] = 'ร้อยเอ็ด';
        $c[48] = 'ระนอง';
        $c[49] = 'ระยอง';
        $c[50] = 'ราชบุรี';
        $c[51] = 'ลพบุรี';
        $c[52] = 'ลำปาง';
        $c[53] = 'ลำพูน';
        $c[54] = 'เลย';
        $c[55] = 'ศรีสะเกษ';
        $c[56] = 'สกลนคร';
        $c[57] = 'สงขลา';
        $c[58] = 'สตูล';
        $c[59] = 'สมุทรปราการ';
        $c[60] = 'สมุทรสงคราม';
        $c[61] = 'สมุทรสาคร';
        $c[62] = 'สระแก้ว';
        $c[63] = 'สระบุรี';
        $c[64] = 'สิงห์บุรี';
        $c[65] = 'สุโขทัย';
        $c[66] = 'สุพรรณบุรี';
        $c[67] = 'สุราษฎร์ธานี';
        $c[68] = 'สุรินทร์';
        $c[69] = 'หนองคาย';
        $c[70] = 'หนองบัวลำภู';
        $c[71] = 'อ่างทอง';
        $c[72] = 'อำนาจเจริญ';
        $c[73] = 'อุดรธานี';
        $c[74] = 'อุตรดิตถ์';
        $c[75] = 'อุทัยธานี';
        $c[76] = 'อุบลราชธานี';

        if ($select == '0') {
            return $c;
        } else {
            return $c[$select];
        }
    }

    /**
     * สร้าง array ประเทศ
     * สร้าง array เก็บค่าประเทศ
     * @author BeYourCyber
     * @version 1.0
     * @param int เลือกว่าเป็นประเทศใด
     * @return string|array ถ้าไม่เลือกประเทศ จะได้ array ถ้าเลือกประเทศจะได้ string ชื่อประเทศ
     */
    function Set_country($select) {
        $c['AF'] = "Afghanistan";
        $c['AL'] = "Albania";
        $c['DZ'] = "Algeria";
        $c['AS'] = "American Samoa";
        $c['AD'] = "Andorra";
        $c['AO'] = "Angola";
        $c['AI'] = "Anguilla";
        $c['AQ'] = "Antarctica";
        $c['AG'] = "Antigua/Barbuda";
        $c['AR'] = "Argentina";
        $c['AM'] = "Armenia";
        $c['AW'] = "Aruba";
        $c['AU'] = "Australia";
        $c['AT'] = "Austria";
        $c['AZ'] = "Azerbaijan";
        $c['BS'] = "Bahamas";
        $c['BH'] = "Bahrain";
        $c['BD'] = "Bangladesh";
        $c['BB'] = "Barbados";
        $c['BY'] = "Belarus";
        $c['BE'] = "Belgium";
        $c['BZ'] = "Belize";
        $c['BJ'] = "Benin";
        $c['BM'] = "Bermuda";
        $c['BT'] = "Bhutan";
        $c['IO'] = "BIOT";
        $c['BO'] = "Bolivia";
        $c['BA'] = "Bosnia/Herzegowina";
        $c['BW'] = "Botswana";
        $c['BV'] = "Bouvet Island";
        $c['BR'] = "Brazil";
        $c['BN'] = "Brunei Darussalam";
        $c['BG'] = "Bulgaria";
        $c['BF'] = "Burkina Faso";
        $c['BI'] = "Burundi";
        $c['KH'] = "Cambodia";
        $c['CM'] = "Cameroon";
        $c['CA'] = "Canada";
        $c['CV'] = "Cape Verde";
        $c['CF'] = "CAR";
        $c['KY'] = "Cayman Islands";
        $c['TD'] = "Chad";
        $c['CL'] = "Chile";
        $c['CN'] = "China";
        $c['CX'] = "Christmas Island";
        $c['CC'] = "Cocos Islands";
        $c['CO'] = "Colombia";
        $c['KM'] = "Comoros";
        $c['CG'] = "Congo";
        $c['CK'] = "Cook Islands";
        $c['CR'] = "Costa Rica";
        $c['CI'] = "Cote D'ivoire";
        $c['HR'] = "Croatia";
        $c['CU'] = "Cuba";
        $c['CY'] = "Cyprus";
        $c['CZ'] = "Czech Republic";
        $c['DK'] = "Denmark";
        $c['DJ'] = "Djibouti";
        $c['DM'] = "Dominica";
        $c['DO'] = "Dominican Republic";
        $c['TP'] = "East Timor";
        $c['EC'] = "Ecuador";
        $c['EG'] = "Egypt";
        $c['SV'] = "El Salvador";
        $c['GQ'] = "Equatorial Guinea";
        $c['ER'] = "Eritrea";
        $c['EE'] = "Estonia";
        $c['ET'] = "Ethiopia";
        $c['FK'] = "Falkland Islands";
        $c['FO'] = "Faroe Islands";
        $c['FJ'] = "Fiji";
        $c['FI'] = "Finland";
        $c['FR'] = "France";
        $c['FX'] = "France, Metropolitan";
        $c['GF'] = "French Guiana";
        $c['PF'] = "French Polynesia";
        $c['TF'] = "French So. Lands";
        $c['GA'] = "Gabon";
        $c['GM'] = "Gambia";
        $c['GZ'] = "Gaza";
        $c['GE'] = "Georgia";
        $c['DE'] = "Germany";
        $c['GH'] = "Ghana";
        $c['GI'] = "Gibraltar";
        $c['GR'] = "Greece";
        $c['GL'] = "Greenland";
        $c['GD'] = "Grenada";
        $c['GP'] = "Guadeloupe";
        $c['GU'] = "Guam";
        $c['GT'] = "Guatemala";
        $c['GN'] = "Guinea";
        $c['GW'] = "Guinea-Bissau";
        $c['GY'] = "Guyana";
        $c['HT'] = "Haiti";
        $c['HM'] = "Heard,Mc Donald Isl.";
        $c['HN'] = "Honduras";
        $c['HK'] = "Hong Kong";
        $c['HU'] = "Hungary";
        $c['IS'] = "Iceland";
        $c['IN'] = "India";
        $c['ID'] = "Indonesia";
        $c['IR'] = "Iran";
        $c['IQ'] = "Iraq";
        $c['IE'] = "Ireland";
        $c['IL'] = "Israel";
        $c['IT'] = "Italy";
        $c['JM'] = "Jamaica";
        $c['JP'] = "Japan";
        $c['JO'] = "Jordan";
        $c['KZ'] = "Kazakhstan";
        $c['KE'] = "Kenya";
        $c['KI'] = "Kiribati";
        $c['KW'] = "Kuwait";
        $c['KG'] = "Kyrgyzstan";
        $c['LA'] = "Laos";
        $c['LV'] = "Latvia";
        $c['LB'] = "Lebanon";
        $c['LS'] = "Lesotho";
        $c['LR'] = "Liberia";
        $c['LY'] = "Libya";
        $c['LI'] = "Liechtenstein";
        $c['LT'] = "Lithuania";
        $c['LU'] = "Luxembourg";
        $c['MO'] = "Macau";
        $c['MK'] = "Macedonia";
        $c['MG'] = "Madagascar";
        $c['MW'] = "Malawi";
        $c['MY'] = "Malaysia";
        $c['MV'] = "Maldives";
        $c['ML'] = "Mali";
        $c['MT'] = "Malta";
        $c['MH'] = "Marshall Islands";
        $c['MQ'] = "Martinique";
        $c['MR'] = "Mauritania";
        $c['MU'] = "Mauritius";
        $c['YT'] = "Mayotte";
        $c['MX'] = "Mexico";
        $c['FM'] = "Micronesia";
        $c['MD'] = "Moldova";
        $c['MC'] = "Monaco";
        $c['MN'] = "Mongolia";
        $c['MS'] = "Montserrat";
        $c['MA'] = "Morocco";
        $c['MZ'] = "Mozambique";
        $c['MM'] = "Myanmar";
        $c['NA'] = "Namibia";
        $c['NR'] = "Nauru";
        $c['NP'] = "Nepal";
        $c['NL'] = "Netherlands";
        $c['AN'] = "Netherlands Antilles";
        $c['NC'] = "New Caledonia";
        $c['NZ'] = "New Zealand";
        $c['NI'] = "Nicaragua";
        $c['NE'] = "Niger";
        $c['NG'] = "Nigeria";
        $c['NU'] = "Niue";
        $c['NF'] = "Norfolk Island";
        $c['KP'] = "North Korea";
        $c['MP'] = "Northern Mariana Isl.";
        $c['NO'] = "Norway";
        $c['OM'] = "Oman";
        $c['PK'] = "Pakistan";
        $c['PW'] = "Palau";
        $c['PA'] = "Panama";
        $c['PG'] = "Papua New Guinea";
        $c['PY'] = "Paraguay";
        $c['PE'] = "Peru";
        $c['PH'] = "Philippines";
        $c['PN'] = "Pitcairn";
        $c['PL'] = "Poland";
        $c['PT'] = "Portugal";
        $c['PR'] = "Puerto Rico";
        $c['QA'] = "Qatar";
        $c['RE'] = "Reunion";
        $c['RO'] = "Romania";
        $c['RU'] = "Russian Federation";
        $c['RW'] = "Rwanda";
        $c['KN'] = "Saint Kitts,Nevis";
        $c['LC'] = "Saint Lucia";
        $c['WS'] = "Samoa";
        $c['SM'] = "San Marino";
        $c['ST'] = "Sao Tome/Principe";
        $c['SA'] = "Saudi Arabia";
        $c['SN'] = "Senegal";
        $c['SC'] = "Seychelles";
        $c['SL'] = "Sierra Leone";
        $c['SG'] = "Singapore";
        $c['SK'] = "Slovak Republic";
        $c['SI'] = "Slovenia";
        $c['SB'] = "Solomon Islands";
        $c['SO'] = "Somalia";
        $c['ZA'] = "South Africa";
        $c['KR'] = "South Korea";
        $c['ES'] = "Spain";
        $c['LK'] = "Sri Lanka";
        $c['SH'] = "St. Helena";
        $c['PM'] = "St.Pierre,Miquelon";
        $c['VC'] = "St.Vincent/Grenadines";
        $c['SD'] = "Sudan";
        $c['SR'] = "Suriname";
        $c['SJ'] = "Svalbard/Jan Mayen";
        $c['SZ'] = "Swaziland";
        $c['SE'] = "Sweden";
        $c['CH'] = "Switzerland";
        $c['SY'] = "Syrian Arab Republic";
        $c['TW'] = "Taiwan";
        $c['TJ'] = "Tajikistan";
        $c['TZ'] = "Tanzania";
        $c['TH'] = "Thailand";
        $c['TG'] = "Togo";
        $c['TK'] = "Tokelau";
        $c['TO'] = "Tonga";
        $c['TT'] = "Trinidad And Tobago";
        $c['TN'] = "Tunisia";
        $c['TR'] = "Turkey";
        $c['TM'] = "Turkmenistan";
        $c['TC'] = "Turks/Caicos Isl";
        $c['TV'] = "Tuvalu";
        $c['UG'] = "Uganda";
        $c['UA'] = "Ukraine";
        $c['AE'] = "United Arab Emirates";
        $c['GB'] = "United Kingdom";
        $c['US'] = "United States";
        $c['UY'] = "Uruguay";
        $c['UZ'] = "Uzbekistan";
        $c['VU'] = "Vanuatu";
        $c['VA'] = "Vatican";
        $c['VE'] = "Venezuela";
        $c['VN'] = "Viet Nam";
        $c['VG'] = "Virgin Isl. (British)";
        $c['VI'] = "Virgin Islands (U.S.)";
        $c['WF'] = "Wallis/Futuna Isl.";
        $c['WJ'] = "West Bank";
        $c['EH'] = "Western Sahara";
        $c['YE'] = "Yemen";
        $c['YU'] = "Yugoslavia";
        $c['ZR'] = "Zaire";
        $c['ZM'] = "Zambia";
        $c['ZW'] = "Zimbabwe";
        if ($select == '0') {
            return $c;
        } else {
            return $c[$select];
        }
    }

    /**
     * แสดงเพศเป็นภาษาไทย
     * แสดงโค้ดเพศเป็นภาษาไทย
     * @author BeYourCyber
     * @version 1.0
     * @param char เช่น F , M
     * @return string เช่น หญิง , ชาย
     */
    function genderthai($gender) {
        if ($gender == "F") {
            return "หญิง";
        } else {
            return "ชาย";
        }
    }

    /**
     * แสดงวันที่เป็นภาษาไทย
     * ใช้สำหรับ date time ที่มีทั้งวันเวลาติดกันมาด้วย
     * @author BeYourCyber
     * @version 1.0
     * @param datetime เช่น 2010-12-30 17:06:26
     * @return string เช่น 30/12/2553 17:06:26
     */
    function thaidate($date) {
        $tmp = explode(" ", $date);

        $tmp2 = explode('-', $tmp[0]);

        $tmp2[0] = $tmp2[0] + 543;

        $newtype = $tmp2[2] . "/" . $tmp2[1] . "/" . $tmp2[0] . " " . $tmp[1];
        unset($tmp);
        unset($tmp2);
        return $newtype;
    }

    /**
     * แปลงเลขเวลา ให้เป็นเวลาจริง
     * ใช้สำหรับแยกเก็บเข้า database
     * @author BeYourCyber
     * @version 1.0
     * @param int เช่น 630
     * @return string เช่น 06:30
     */
    function dealerworktime($openhour, $closehour) {


        $tmpclosehour = substr($closehour, -2, 2);

        if (strlen($openhour) == '3') {
            $hour['open'] = substr($openhour, -2, 2);
            $hour['open'] = "0" . substr_replace($openhour, '', 1, 2) . ":" . $hour['open'];
        } else {
            $hour['open'] = substr($openhour, -2, 2);
            $hour['open'] = substr_replace($openhour, '', 2, 2) . ":" . $hour['open'];
        }
        if (strlen($closehour) == '4') {
            $hour['close'] = substr($closehout, -2, 2);
            $hour['close'] = "0" . substr_replace($closehour, '', 1, 2) . ":" . $hour['close'];
        } else {
            $hour['close'] = substr($openhour, -2, 2);
            $hour['close'] = substr_replace($closehour, '', 2, 2) . ":" . $hour['close'];
        }

        echo $hour['open'] . " - ";
        echo $hour['close'];
    }

    function worktime($time) {
        if (strlen($time) == '3') {
            $hour['minute'] = substr($time, -2, 2);
            $hour['hour'] = substr_replace($time, '', 1, 2);
        } else {
            $hour['minute'] = substr($time, -2, 2);
            $hour['hour'] = substr_replace($time, '', 2, 2);
        }
        return $hour;
    }

    /**
     * แปลง วันที่ให้เป็น array
     * แปลง mysql date format ให้เป็น array {day,month,year}
     * @author BeYourCyber
     * @version 1.0
     * @param date เช่น 2010-12-30
     * @return array $tmpdate['day'],$tmpdate['month'],$tmpdate['year']
     */
    function datepicker($date) {
        $date2 = explode("-", $date);

        $tmpdate['day'] = $date2[2];
        $tmpdate['month'] = $date2[1];
        $tmpdate['year'] = $date2[0];
        unset($date2);
        return $tmpdate;
    }

    /**
     * โค้ดแสดงผล flash
     * แสดงผล flash ออกหน้าเว็บโดยใช้คู่กับ swfobject ดูตัวอย่างได้จาก project changchuanchim.com
     * @author BeYourCyber
     * @version 1.0
     * @param string ชื่อของ id เช่น flashobj
     * @param int ความกว้างของ flash ไม่ต้องใส่หน่วย(px)
     * @param int ความสูงของ flash ไม่ต้องใส่หน่วย(px)
     * @param string path ที่เก็บ flash file เช่น a/f/test.swf
     * @param string content ที่ต้องการใส่เข้าไปใน flash
     * @param string ประกอบด้วย transparent,opaque,windows
     * @param string value ที่ต้องการใส่เข้าไปใน flash
     * @param string path ที่เก็บ flash install เช่น a/f/expressInstall.swf
     * @return string สำหรับนำไป echo 
     */
    function AddFlashContent($idname, $flashwidth, $flashheight, $pathflashfile, $contentseo, $wmode, $flashvar, $expressinstall) {
        $tmp = '
<div><object id="%1$s" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="%2$d" height="%3$d">
  <param name="movie" value="%4$s" />
  <param name="quality" value="high" />
  <param name="wmode" value="%6$s" />
  <param name="swfversion" value="9.0.0" />
  <!-- This param tag prompts users with Flash Player 6.0 r65 and higher to download the latest version of Flash Player. Delete it if you don’t want users to see the prompt. -->
  <param name="expressinstall" value="%8$s" />
  <param name="flashvars" value="%7$s" />
  <!-- Next object tag is for non-IE browsers. So hide it from IE using IECC. -->
  <!--[if !IE]>-->
  <object type="application/x-shockwave-flash" data="%4$s" width="%2$d" height="%3$d">
    <!--<![endif]-->
    <param name="quality" value="high" />
    <param name="wmode" value="%6$s" />
    <param name="swfversion" value="9.0.0" />
    <param name="expressinstall" value="%8$s" />
    <param name="flashvars" value="%7$s" />
    <!-- The browser displays the following alternative content for users with Flash Player 6.0 and older. -->
    <div>

      <p>%5$s</p>
    </div>
    <!--[if !IE]>-->
  </object>
  <!--<![endif]-->
</object></div>

';

        return sprintf($tmp, $idname, $flashwidth, $flashheight, $pathflashfile, $contentseo, $wmode, $flashvar, $expressinstall);
    }

//function AddFlashContent($idname,$flashwidth,$flashheight,$pathflashfile,$contentseo){
//  $tmp = '<div>
//			<object id="%s" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="%d" height="%d">
//				<param name="movie" value="%s" />
//        		<!--[if !IE]>-->
//				<object type="application/x-shockwave-flash" data="%s" width="%d" height="%d">
//				<!--<![endif]-->
//				<div>
//					<p>%s</p>
//					<p><a href="http://www.adobe.com/go/getflashplayer"><img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" /></a></p>
//				</div>
//				<!--[if !IE]>-->
//				</object>
//				<!--<![endif]-->
//			</object>
//		</div>';
//
//		return sprintf($tmp,$idname,$flashwidth,$flashheight,$pathflashfile,$pathflashfile,$flashwidth,$flashheight,$contentseo);
//
//}
    /**
     * include css เข้าหน้าเว็บ
     * รับ array ชื่อไฟล์ เพื่อนำมารวมกัน และทำงานคู่กับ Files::css()
     * <b>ตัวอย่าง</b>
     * <code>
     * $tmp = array('a:c:validationEngine.jquery','a:c:form_signup','a:c:excite-bike:jqui184');
     * $x['AddHead'] .= $this->bee->AddCss($tmp); unset($tmp);
     * </code>
     * @author BeYourCyber
     * @version 1.0
     * @param array ชื่อ ของ css file เช่น 'a:c:fancybox131','a:c:bee' โดย แปลง / ให้เป็น : แทน และไม่ต้องใส่นามสกุล
     * @return string สำหรับนำไป echo ในรูปแบบ <link rel="stylesheet" type="text/css" href="./files/css/%s" />
     * @link Files::css()
     */
    function AddCss($pathtocssfile) {
        $tmp = '';

        foreach ($pathtocssfile as $k => $v) {
            if (isset($x)) {
                $x .= '--' . $v;
            } else {
                $x = $v;
            }
        }
        $tmp .= sprintf('<link rel="stylesheet" type="text/css" href="%s" />
', site_url('/files/css/'.$x));
        return $tmp;
    }

    /**
     * include css เข้าหน้าเว็บ
     * รับ array ชื่อไฟล์ เพื่อแสดงแบบแยก tag rel ต่อหนึ่งไฟล์
     * <code>
     * $tmp = array( 'a/c/fancybox131.css','a/c/bee.css' );
     * $x['AddHead'] .= $this->bee->AddCss2($tmp); unset($tmp);
     * </code>
     * @author BeYourCyber
     * @version 1.0
     * @param array ชื่อและ path ของ css file เช่น 'a/c/fancybox131.css','a/c/bee.css'
     * @return string สำหรับนำไป echo ในรูปแบบ <link rel="stylesheet" type="text/css" href="%s" /> ต่อหนึ่ง ไฟล์
     */
    function AddCss2($pathtocssfile) {
        $tmp = '';
        foreach ($pathtocssfile as $k => $v) {
            $tmp .= sprintf('<link rel="stylesheet" type="text/css" href="%s" />
', $v);
        }
        return $tmp;
    }

    /**
     * include javascript เข้าหน้าเว็บ
     * รับ array ชื่อไฟล์ เพื่อนำมารวมกัน และทำงานคู่กับ Files::js()
     * <b>ตัวอย่าง</b>
     * <code>
     * $tmp = array('a:j:jquery.validationEngine-th', 'a:j:jquery.validationEngine');
     * $x['AddHead'] .= $this->bee->AddJava($tmp); unset($tmp);
     * </code>
     * @author BeYourCyber
     * @version 1.0
     * @param array ชื่อ ของ js file เช่น 'a:j:jquery.validationEngine-th', 'a:j:jquery.validationEngine' โดย แปลง / ให้เป็น : แทน และไม่ต้องใส่นามสกุล
     * @return string สำหรับนำไป echo ในรูปแบบ <script type="text/javascript" src="./files/js/%s"></script>
     * @link Files::js()
     */
    function AddJava($pathtojscript) {
        $tmp = '';

        foreach ($pathtojscript as $k => $v) {
            if (isset($x)) {
                $x .= '--' . $v;
            } else {
                $x = $v;
            }
        }
        $tmp .= sprintf('<script type="text/javascript" src="%s"></script>
', site_url('/files/js/'.$x));
        return $tmp;
    }

    /**
     * include javascript เข้าหน้าเว็บ
     * รับ array ชื่อไฟล์ เพื่อแสดงแบบแยก tag src ต่อหนึ่งไฟล์
     * <code>
     * $tmp = array( 'a/j/swfobject.js' );
     * $x['AddHead'] .= $this->bee->AddCss2($tmp); unset($tmp);
     * </code>
     * @author BeYourCyber
     * @version 1.0
     * @param array ชื่อและ path ของ css file เช่น 'a/j/swfobject.js'
     * @return string สำหรับนำไป echo ในรูปแบบ <link rel="stylesheet" type="text/css" href="%s" /> ต่อหนึ่ง ไฟล์
     */
    function AddJava2($pathtojscript) {
        $tmp = '';
        foreach ($pathtojscript as $k => $v) {
            $tmp .= sprintf('<script type="text/javascript" src="%s"></script>
', $v);
        }
        return $tmp;
    }

    /**
     * ตรวจค่า ถ้ามีให้แสดงค่า
     * ถ้ามีค่าที่เก็บให้แสดงออกมา
     * @author BeYourCyber
     * @version 1.0
     * @param any ค่าที่ต้องการตรวจสอบ
     * @return string ค่าที่เก็บอยู่ในตัวแปร
     */
    function setValue($value) {
        if (isset($value{0}))
            echo $value;
    }

    /**
     * ถูกเลือกหรือไม่
     * ถ้าค่าทั้งสอง match กัน ให้แสดง selected="selected" ใช้สำหรับ loop form
     * @author BeYourCyber
     * @version 1.0
     * @param any ค่าเปรียบเทียบ 1
     * @param any ค่าเปรียบเทียบ 2
     * @return string selected="selected" ถ้าค่า match กัน
     */
    function setSelect($select, $value) {
        if ($select == $value)
            echo 'selected="selected"';
    }

    /**
     * อ่าน theme admin ปัจจุบัน
     * ว่าปัจจุบัน เลือก admin theme อะไรอยู่
     * @author BeYourCyber
     * @version 1.0
     * @return string ค่า theme ที่อยู่ใน cookie
     */
    function getTheme() {
        $CI = & get_instance();
        $CI->load->helper('cookie');
        $theme = get_cookie('theme');
        return $theme;
    }

    /**
     * Redirect back
     * สั่ง redirect กลับไปหน้าที่ user เรียกมาก่อนหน้า
     */
    function redirectBack() {
        $destination = htmlspecialchars(getenv("HTTP_REFERER"), ENT_QUOTES, 'UTF-8');
        if (isset($destination{10})) {
            header("Location: " . $destination);
        }
    }

}

?>